home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1982-12-30 | 3.1 KB | 87 lines |
- 0 REM prog = GDUMP
- 1 VERSION$= "V1.2" 'COMPILE open-print time delay bug sidestepped.
- 2 REM Author: Herb Shear, 1590 Vineyard Dr. Los Altos, Ca 94022
- 3 'PUBLIC DOMAIN SOFTWARE
- 4 REM Medium Resolution Graphic Screen dump to C.ITOH 8510 or NEC 8023
- 5 REM --If you want to dump a graphics screen to disk all that takes is:
- 6 '
- 7 ' DEF SEG=&HB800: BSAVE "filname.ext",0,&H4000
- 8 ' (BASIC immediate mode instruction).
- 9 '
- 10 ' This PEEK version has some advantages over a similiar
- 11 'POINT version. It's a little faster, it doesn't care whether you
- 12 'are running mono or color, text or graphics modes. If you have the
- 13 'graphics on disk but don't have a color card change the DEF SEG to
- 14 'any hunk of memory laying around doing nothing useful.
- 15 'Compiled this thing runs in under 30 secs vs interpreter's 5+ minutes.
- 100 KEY OFF:CLS:DEFINT A-Z: DEF SEG = &HB800
- 110 OPEN "LPT1:" AS #1:WIDTH #1,255
- 120 PRINT "GDUMP ";VERSION$
- 130 PRINT:PRINT "Enter FILENAME.EXT of graphics binary file. NO QUOTES!"
- 140 PRINT
- 150 PRINT "Pressing Enter defaults to current graphics screen display"
- 160 PRINT
- 170 GOSUB 790
- 180 LINE INPUT "?"; N$
- 190 IF LEN(N$)=0 THEN 240
- 200 PRINT "If Color Graphics board is in text mode -"
- 210 PRINT " BE YEA OF GOOD FAITH"
- 220 BLOAD N$,0
- 230 REM 16/144 feed unidir elongated compressed pitch
- 240 PRINT #1,CHR$(27)+"T16"+CHR$(27)+">"+CHR$(14)+CHR$(27)+"Q";
- 250 P1$=CHR$(27)+"S0320" '320 bytes of graphics mode
- 260 FOR J=0 TO 7680 STEP 320
- 270 P$=P1$ :PP$=""
- 280 FOR X = 0 TO 79 :Z=J+X
- 290 P=0
- 300 IF PEEK(Z ) AND &HC0 THEN P=P OR &H1
- 310 IF PEEK(Z+&H2000) AND &HC0 THEN P=P OR &H2
- 320 IF PEEK(Z+&H50) AND &HC0 THEN P=P OR &H4
- 330 IF PEEK(Z+&H2050) AND &HC0 THEN P=P OR &H8
- 340 IF PEEK(Z+&HA0) AND &HC0 THEN P=P OR &H10
- 350 IF PEEK(Z+&H20A0) AND &HC0 THEN P=P OR &H20
- 360 IF PEEK(Z+&HF0) AND &HC0 THEN P=P OR &H40
- 370 IF PEEK(Z+&H20F0) AND &HC0 THEN P=P OR &H80
- 380 PP$=PP$+CHR$(P) : P=0
- 390 IF PEEK(Z ) AND &H30 THEN P=P OR &H1
- 400 IF PEEK(Z+&H2000) AND &H30 THEN P=P OR &H2
- 410 IF PEEK(Z+&H50) AND &H30 THEN P=P OR &H4
- 420 IF PEEK(Z+&H2050) AND &H30 THEN P=P OR &H8
- 430 IF PEEK(Z+&HA0) AND &H30 THEN P=P OR &H10
- 440 IF PEEK(Z+&H20A0) AND &H30 THEN P=P OR &H20
- 450 IF PEEK(Z+&HF0) AND &H30 THEN P=P OR &H40
- 460 IF PEEK(Z+&H20F0) AND &H30 THEN P=P OR &H80
- 470 PP$=PP$+CHR$(P) : P=0
- 480 IF PEEK(Z ) AND &HC THEN P=P OR &H1
- 490 IF PEEK(Z+&H2000) AND &HC THEN P=P OR &H2
- 500 IF PEEK(Z+&H50) AND &HC THEN P=P OR &H4
- 510 IF PEEK(Z+&H2050) AND &HC THEN P=P OR &H8
- 520 IF PEEK(Z+&HA0) AND &HC THEN P=P OR &H10
- 530 IF PEEK(Z+&H20A0) AND &HC THEN P=P OR &H20
- 540 IF PEEK(Z+&HF0) AND &HC THEN P=P OR &H40
- 550 IF PEEK(Z+&H20F0) AND &HC THEN P=P OR &H80
- 560 PP$=PP$+CHR$(P) : P=0
- 570 IF PEEK(Z ) AND &H3 THEN P=P OR &H1
- 580 IF PEEK(Z+&H2000) AND &H3 THEN P=P OR &H2
- 590 IF PEEK(Z+&H50) AND &H3 THEN P=P OR &H4
- 600 IF PEEK(Z+&H2050) AND &H3 THEN P=P OR &H8
- 610 IF PEEK(Z+&HA0) AND &H3 THEN P=P OR &H10
- 620 IF PEEK(Z+&H20A0) AND &H3 THEN P=P OR &H20
- 630 IF PEEK(Z+&HF0) AND &H3 THEN P=P OR &H40
- 640 IF PEEK(Z+&H20F0) AND &H3 THEN P=P OR &H80
- 650 PP$=PP$+CHR$(P)
- 660 IF X=39 THEN P$=P$+PP$: PP$=""
- 670 NEXT 'x
- 680 PRINT #1,P$; :PRINT #1,PP$+CHR$(10) : NEXT 'j
- 690 PRINT TAB(20);"M) More of the same."
- 700 PRINT TAB(20);"N) New file."
- 710 PRINT TAB(20);"X) Exit (Wait for printer to finish).":PRINT :PRINT
- 720 PRINT:PRINT:PRINT TAB(20);"? "+CHR$(29);
- 730 WHILE INKEY$<>"":WEND
- 740 IN$=INKEY$: IF IN$="" THEN 740
- 750 ON INSTR(" MmNnXx",IN$)\2 + 1 GOTO 720,260,130
- 760 GOSUB 790
- 770 CLOSE
- 780 END
- 790 PRINT #1,CHR$(27)+"\"+CHR$(0)+CHR$(0);:RETURN
-